-- 广告转化处理模块
local lrSDK = require("老狼孩插件懒人免ROOT无障碍版")
local cr = require("cr")
local app_config = require("app_config")

local ad_converter = {}

-- 检查是否在广告页面
function ad_converter.检查广告页面()
    local current_app = app_config.phoenix_read
    
    lrSDK.日志类_调试输出("开始检查是否在广告页面")
    
    -- 检查是否存在"广告"标签
    local 广告标签 = className(current_app.elements.ad_label.class_name)
                  :packageName(current_app.package_name)
                  :text(current_app.elements.ad_label.text)
    
    local 标签结果 = lrSDK.节点类_找节点(广告标签, false, 1000)
    
    -- 检查是否存在反馈按钮（广告中常见的元素）
    local 反馈按钮 = className(current_app.elements.feedback_button.class_name)
                  :packageName(current_app.elements.feedback_button.packageName)
                  :text(current_app.elements.feedback_button.text)
    
    local 反馈结果 = lrSDK.节点类_找节点(反馈按钮, false, 1000)
    
    -- 如果任何一个广告元素存在，则认为在广告页面
    local 是广告页面 = 标签结果 or 反馈结果
    
    if 是广告页面 then
        lrSDK.日志类_调试输出("当前页面是广告页面")
    else
        lrSDK.日志类_调试输出("当前页面不是广告页面")
    end
    
    return 是广告页面
end

-- 转化广告函数（点击并浏览广告）
function ad_converter.转化广告()
    local current_app = app_config.phoenix_read
    
    -- 确认是否在广告页面
    if not ad_converter.检查广告页面() then
        lrSDK.日志类_调试输出("未检测到广告页面，无需转化")
        return false
    end
    
    lrSDK.日志类_调试输出("检测到广告页面，开始转化流程")
    
    -- 尝试点击广告中心位置
    local width, height = cr.获取屏幕分辨率()
    local params = cr.计算滑动参数(width, height)
    
    lrSDK.日志类_调试输出("点击广告中心位置")
    lrSDK.触控类_点击坐标(params.中心x, params.中心y)
    
    -- 等待广告页面加载
    lrSDK.日志类_调试输出("等待广告页面加载")
    cr.等待(2000)
    
    -- 检查是否进入了广告详情页
    local 是否进入详情页 = true
    
    -- 如果成功进入了广告详情页，开始浏览
    if 是否进入详情页 then
        lrSDK.日志类_调试输出("已进入广告详情页，浏览10秒")
        
        -- 在广告页浏览10秒
        local 浏览时间 = 5  -- 浏览5秒后再滑动
        sleep(浏览时间 * 1000)
        
        -- 执行向上滑动以模拟浏览
        lrSDK.日志类_调试输出("向上滑动浏览广告")
        cr.向上滑动()
        
        -- 再浏览5秒
        sleep(5000)
        
        -- 返回视频页面
        lrSDK.日志类_调试输出("广告浏览完成，返回视频页面")
        lrSDK.触控类_模拟物理按键(4)  -- 使用返回键
        
        -- 检查是否仍在广告页面，可能需要连续返回多次
        cr.等待(1000)
        if ad_converter.检查广告页面() then
            lrSDK.日志类_调试输出("仍在广告页面，再次尝试返回")
            lrSDK.触控类_模拟物理按键(4)
            cr.等待(1000)
        end
        
        -- 再次检查
        if ad_converter.检查广告页面() then
            lrSDK.日志类_调试输出("多次返回后仍在广告页面，尝试最后一次返回")
            lrSDK.触控类_模拟物理按键(4)
            cr.等待(1000)
        end
        
        lrSDK.日志类_调试输出("广告转化完成")
        return true
    else
        lrSDK.日志类_调试输出("未能进入广告详情页，返回视频页面")
        lrSDK.触控类_模拟物理按键(4)  -- 使用返回键
        return false
    end
end

return ad_converter 